/*mousewheel*/
(function (a) {
  function d(b) {
    var c = b || window.event,
      d = [].slice.call(arguments, 1),
      e = 0,
      f = !0,
      g = 0,
      h = 0;
    return b = a.event.fix(c), b.type = "mousewheel", c.wheelDelta && (e = c.wheelDelta / 120), c.detail && (e = -c.detail / 3), h = e, c.axis !== undefined && c.axis === c.HORIZONTAL_AXIS && (h = 0, g = -1 * e), c.wheelDeltaY !== undefined && (h = c.wheelDeltaY / 120), c.wheelDeltaX !== undefined && (g = -1 * c.wheelDeltaX / 120), d.unshift(b, e, g, h), (a.event.dispatch || a.event.handle).apply(this, d)
  }
  var b = ["DOMMouseScroll", "mousewheel"];
  if (a.event.fixHooks)
    for (var c = b.length; c;) a.event.fixHooks[b[--c]] = a.event.mouseHooks;
  a.event.special.mousewheel = {
    setup: function () {
      if (this.addEventListener)
        for (var a = b.length; a;) this.addEventListener(b[--a], d, !1);
      else this.onmousewheel = d
    },
    teardown: function () {
      if (this.removeEventListener)
        for (var a = b.length; a;) this.removeEventListener(b[--a], d, !1);
      else this.onmousewheel = null
    }
  }, a.fn.extend({
    mousewheel: function (a) {
      return a ? this.bind("mousewheel", a) : this.trigger("mousewheel")
    },
    unmousewheel: function (a) {
      return this.unbind("mousewheel", a)
    }
  })
})(jQuery);
/*custom scrollbar*/
(function (c) {
  var b = {
      init: function (e) {
        var f = {
            set_width: false,
            set_height: false,
            horizontalScroll: false,
            scrollInertia: 950,
            mouseWheel: true,
            mouseWheelPixels: "auto",
            autoDraggerLength: true,
            autoHideScrollbar: false,
            snapAmount: null,
            snapOffset: 0,
            scrollButtons: {
              enable: false,
              scrollType: "continuous",
              scrollSpeed: "auto",
              scrollAmount: 40
            },
            advanced: {
              updateOnBrowserResize: true,
              updateOnContentResize: false,
              autoExpandHorizontalScroll: false,
              autoScrollOnFocus: true,
              normalizeMouseWheelDelta: false
            },
            contentTouchScroll: true,
            callbacks: {
              onScrollStart: function () {},
              onScroll: function () {},
              onTotalScroll: function () {},
              onTotalScrollBack: function () {},
              onTotalScrollOffset: 0,
              onTotalScrollBackOffset: 0,
              whileScrolling: function () {}
            },
            theme: "light"
          },
          e = c.extend(true, f, e);
        return this.each(function () {
          var m = c(this);
          if (e.set_width) {
            m.css("width", e.set_width)
          }
          if (e.set_height) {
            m.css("height", e.set_height)
          }
          if (!c(document).data("mCustomScrollbar-index")) {
            c(document).data("mCustomScrollbar-index", "1")
          } else {
            var t = parseInt(c(document).data("mCustomScrollbar-index"));
            c(document).data("mCustomScrollbar-index", t + 1)
          }
          m.wrapInner("<div class='mCustomScrollBox mCS-" + e.theme + "' id='mCSB_" + c(document).data("mCustomScrollbar-index") + "' style='position:relative; height:100%; overflow:hidden; max-width:100%;' />").addClass("mCustomScrollbar _mCS_" + c(document).data("mCustomScrollbar-index"));
          var g = m.children(".mCustomScrollBox");
          if (e.horizontalScroll) {
            g.addClass("mCSB_horizontal").wrapInner("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />");
            var k = g.children(".mCSB_h_wrapper");
            k.wrapInner("<div class='mCSB_container' style='position:absolute; left:0;' />").children(".mCSB_container").css({
              width: k.children().outerWidth(),
              position: "relative"
            }).unwrap()
          } else {
            g.wrapInner("<div class='mCSB_container' style='position:relative; top:0;' />")
          }
          var o = g.children(".mCSB_container");
          if (c.support.touch) {
            o.addClass("mCS_touch")
          }
          o.after("<div class='mCSB_scrollTools' style='position:absolute;'><div class='mCSB_draggerContainer'><div class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' style='position:relative;'></div></div><div class='mCSB_draggerRail'></div></div></div>");
          var l = g.children(".mCSB_scrollTools"),
            h = l.children(".mCSB_draggerContainer"),
            q = h.children(".mCSB_dragger");
          if (e.horizontalScroll) {
            q.data("minDraggerWidth", q.width())
          } else {
            q.data("minDraggerHeight", q.height())
          }
          if (e.scrollButtons.enable) {
            if (e.horizontalScroll) {
              l.prepend("<a class='mCSB_buttonLeft' oncontextmenu='return false;'></a>").append("<a class='mCSB_buttonRight' oncontextmenu='return false;'></a>")
            } else {
              l.prepend("<a class='mCSB_buttonUp' oncontextmenu='return false;'></a>").append("<a class='mCSB_buttonDown' oncontextmenu='return false;'></a>")
            }
          }
          g.bind("scroll", function () {
            if (!m.is(".mCS_disabled")) {
              g.scrollTop(0).scrollLeft(0)
            }
          });
          m.data({
            mCS_Init: true,
            mCustomScrollbarIndex: c(document).data("mCustomScrollbar-index"),
            horizontalScroll: e.horizontalScroll,
            scrollInertia: e.scrollInertia,
            scrollEasing: "mcsEaseOut",
            mouseWheel: e.mouseWheel,
            mouseWheelPixels: e.mouseWheelPixels,
            autoDraggerLength: e.autoDraggerLength,
            autoHideScrollbar: e.autoHideScrollbar,
            snapAmount: e.snapAmount,
            snapOffset: e.snapOffset,
            scrollButtons_enable: e.scrollButtons.enable,
            scrollButtons_scrollType: e.scrollButtons.scrollType,
            scrollButtons_scrollSpeed: e.scrollButtons.scrollSpeed,
            scrollButtons_scrollAmount: e.scrollButtons.scrollAmount,
            autoExpandHorizontalScroll: e.advanced.autoExpandHorizontalScroll,
            autoScrollOnFocus: e.advanced.autoScrollOnFocus,
            normalizeMouseWheelDelta: e.advanced.normalizeMouseWheelDelta,
            contentTouchScroll: e.contentTouchScroll,
            onScrollStart_Callback: e.callbacks.onScrollStart,
            onScroll_Callback: e.callbacks.onScroll,
            onTotalScroll_Callback: e.callbacks.onTotalScroll,
            onTotalScrollBack_Callback: e.callbacks.onTotalScrollBack,
            onTotalScroll_Offset: e.callbacks.onTotalScrollOffset,
            onTotalScrollBack_Offset: e.callbacks.onTotalScrollBackOffset,
            whileScrolling_Callback: e.callbacks.whileScrolling,
            bindEvent_scrollbar_drag: false,
            bindEvent_content_touch: false,
            bindEvent_scrollbar_click: false,
            bindEvent_mousewheel: false,
            bindEvent_buttonsContinuous_y: false,
            bindEvent_buttonsContinuous_x: false,
            bindEvent_buttonsPixels_y: false,
            bindEvent_buttonsPixels_x: false,
            bindEvent_focusin: false,
            bindEvent_autoHideScrollbar: false,
            mCSB_buttonScrollRight: false,
            mCSB_buttonScrollLeft: false,
            mCSB_buttonScrollDown: false,
            mCSB_buttonScrollUp: false
          });
          if (e.horizontalScroll) {
            if (m.css("max-width") !== "none") {
              if (!e.advanced.updateOnContentResize) {
                e.advanced.updateOnContentResize = true
              }
            }
          } else {
            if (m.css("max-height") !== "none") {
              var s = false,
                r = parseInt(m.css("max-height"));
              if (m.css("max-height").indexOf("%") >= 0) {
                s = r, r = m.parent().height() * s / 100
              }
              m.css("overflow", "hidden");
              g.css("max-height", r)
            }
          }
          m.mCustomScrollbar("update");
          if (e.advanced.updateOnBrowserResize) {
            var i, j = c(window).width(),
              u = c(window).height();
            c(window).bind("resize." + m.data("mCustomScrollbarIndex"), function () {
              if (i) {
                clearTimeout(i)
              }
              i = setTimeout(function () {
                if (!m.is(".mCS_disabled") && !m.is(".mCS_destroyed")) {
                  var w = c(window).width(),
                    v = c(window).height();
                  if (j !== w || u !== v) {
                    if (m.css("max-height") !== "none" && s) {
                      g.css("max-height", m.parent().height() * s / 100)
                    }
                    m.mCustomScrollbar("update");
                    j = w;
                    u = v
                  }
                }
              }, 150)
            })
          }
          if (e.advanced.updateOnContentResize) {
            var p;
            if (e.horizontalScroll) {
              var n = o.outerWidth()
            } else {
              var n = o.outerHeight()
            }
            p = setInterval(function () {
              if (e.horizontalScroll) {
                if (e.advanced.autoExpandHorizontalScroll) {
                  o.css({
                    position: "absolute",
                    width: "auto"
                  }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({
                    width: o.outerWidth(),
                    position: "relative"
                  }).unwrap()
                }
                var v = o.outerWidth()
              } else {
                var v = o.outerHeight()
              }
              if (v != n) {
                m.mCustomScrollbar("update");
                n = v
              }
            }, 300)
          }
        })
      },
      update: function () {
        var n = c(this),
          k = n.children(".mCustomScrollBox"),
          q = k.children(".mCSB_container");
        q.removeClass("mCS_no_scrollbar");
        n.removeClass("mCS_disabled mCS_destroyed");
        k.scrollTop(0).scrollLeft(0);
        var y = k.children(".mCSB_scrollTools"),
          o = y.children(".mCSB_draggerContainer"),
          m = o.children(".mCSB_dragger");
        if (n.data("horizontalScroll")) {
          var A = y.children(".mCSB_buttonLeft"),
            t = y.children(".mCSB_buttonRight"),
            f = k.width();
          if (n.data("autoExpandHorizontalScroll")) {
            q.css({
              position: "absolute",
              width: "auto"
            }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({
              width: q.outerWidth(),
              position: "relative"
            }).unwrap()
          }
          var z = q.outerWidth()
        } else {
          var w = y.children(".mCSB_buttonUp"),
            g = y.children(".mCSB_buttonDown"),
            r = k.height(),
            i = q.outerHeight()
        }
        if (i > r && !n.data("horizontalScroll")) {
          y.css("display", "block");
          var s = o.height();
          if (n.data("autoDraggerLength")) {
            var u = Math.round(r / i * s),
              l = m.data("minDraggerHeight");
            if (u <= l) {
              m.css({
                height: l
              })
            } else {
              if (u >= s - 10) {
                var p = s - 10;
                m.css({
                  height: p
                })
              } else {
                m.css({
                  height: u
                })
              }
            }
            m.children(".mCSB_dragger_bar").css({
              "line-height": m.height() + "px"
            })
          }
          var B = m.height(),
            x = (i - r) / (s - B);
          n.data("scrollAmount", x).mCustomScrollbar("scrolling", k, q, o, m, w, g, A, t);
          var D = Math.abs(q.position().top);
          n.mCustomScrollbar("scrollTo", D, {
            scrollInertia: 0,
            trigger: "internal"
          })
        } else {
          if (z > f && n.data("horizontalScroll")) {
            y.css("display", "block");
            var h = o.width();
            if (n.data("autoDraggerLength")) {
              var j = Math.round(f / z * h),
                C = m.data("minDraggerWidth");
              if (j <= C) {
                m.css({
                  width: C
                })
              } else {
                if (j >= h - 10) {
                  var e = h - 10;
                  m.css({
                    width: e
                  })
                } else {
                  m.css({
                    width: j
                  })
                }
              }
            }
            var v = m.width(),
              x = (z - f) / (h - v);
            n.data("scrollAmount", x).mCustomScrollbar("scrolling", k, q, o, m, w, g, A, t);
            var D = Math.abs(q.position().left);
            n.mCustomScrollbar("scrollTo", D, {
              scrollInertia: 0,
              trigger: "internal"
            })
          } else {
            k.unbind("mousewheel focusin");
            if (n.data("horizontalScroll")) {
              m.add(q).css("left", 0)
            } else {
              m.add(q).css("top", 0)
            }
            y.css("display", "none");
            q.addClass("mCS_no_scrollbar");
            n.data({
              bindEvent_mousewheel: false,
              bindEvent_focusin: false
            })
          }
        }
      },
      scrolling: function (h, p, m, j, w, e, A, v) {
        var k = c(this);
        if (!k.data("bindEvent_scrollbar_drag")) {
          var n, o;
          if (c.support.msPointer) {
            j.bind("MSPointerDown", function (H) {
              H.preventDefault();
              k.data({
                on_drag: true
              });
              j.addClass("mCSB_dragger_onDrag");
              var G = c(this),
                J = G.offset(),
                F = H.originalEvent.pageX - J.left,
                I = H.originalEvent.pageY - J.top;
              if (F < G.width() && F > 0 && I < G.height() && I > 0) {
                n = I;
                o = F
              }
            });
            c(document).bind("MSPointerMove." + k.data("mCustomScrollbarIndex"), function (H) {
              H.preventDefault();
              if (k.data("on_drag")) {
                var G = j,
                  J = G.offset(),
                  F = H.originalEvent.pageX - J.left,
                  I = H.originalEvent.pageY - J.top;
                D(n, o, I, F)
              }
            }).bind("MSPointerUp." + k.data("mCustomScrollbarIndex"), function (x) {
              k.data({
                on_drag: false
              });
              j.removeClass("mCSB_dragger_onDrag")
            })
          } else {
            j.bind("mousedown touchstart", function (H) {
              H.preventDefault();
              H.stopImmediatePropagation();
              var G = c(this),
                K = G.offset(),
                F, J;
              if (H.type === "touchstart") {
                var I = H.originalEvent.touches[0] || H.originalEvent.changedTouches[0];
                F = I.pageX - K.left;
                J = I.pageY - K.top
              } else {
                k.data({
                  on_drag: true
                });
                j.addClass("mCSB_dragger_onDrag");
                F = H.pageX - K.left;
                J = H.pageY - K.top
              }
              if (F < G.width() && F > 0 && J < G.height() && J > 0) {
                n = J;
                o = F
              }
            }).bind("touchmove", function (H) {
              H.preventDefault();
              H.stopImmediatePropagation();
              var K = H.originalEvent.touches[0] || H.originalEvent.changedTouches[0],
                G = c(this),
                J = G.offset(),
                F = K.pageX - J.left,
                I = K.pageY - J.top;
              D(n, o, I, F)
            });
            c(document).bind("mousemove." + k.data("mCustomScrollbarIndex"), function (H) {
              if (k.data("on_drag")) {
                var G = j,
                  J = G.offset(),
                  F = H.pageX - J.left,
                  I = H.pageY - J.top;
                D(n, o, I, F)
              }
            }).bind("mouseup." + k.data("mCustomScrollbarIndex"), function (x) {
              k.data({
                on_drag: false
              });
              j.removeClass("mCSB_dragger_onDrag")
            })
          }
          k.data({
            bindEvent_scrollbar_drag: true
          })
        }

        function D(G, H, I, F) {
          if (k.data("horizontalScroll")) {
            k.mCustomScrollbar("scrollTo", (j.position().left - (H)) + F, {
              moveDragger: true,
              trigger: "internal"
            })
          } else {
            k.mCustomScrollbar("scrollTo", (j.position().top - (G)) + I, {
              moveDragger: true,
              trigger: "internal"
            })
          }
        }
        if (c.support.touch && k.data("contentTouchScroll")) {
          if (!k.data("bindEvent_content_touch")) {
            var l, B, r, s, u, C, E;
            p.bind("touchstart", function (x) {
              x.stopImmediatePropagation();
              l = x.originalEvent.touches[0] || x.originalEvent.changedTouches[0];
              B = c(this);
              r = B.offset();
              u = l.pageX - r.left;
              s = l.pageY - r.top;
              C = s;
              E = u
            });
            p.bind("touchmove", function (x) {
              x.preventDefault();
              x.stopImmediatePropagation();
              l = x.originalEvent.touches[0] || x.originalEvent.changedTouches[0];
              B = c(this).parent();
              r = B.offset();
              u = l.pageX - r.left;
              s = l.pageY - r.top;
              if (k.data("horizontalScroll")) {
                k.mCustomScrollbar("scrollTo", E - u, {
                  trigger: "internal"
                })
              } else {
                k.mCustomScrollbar("scrollTo", C - s, {
                  trigger: "internal"
                })
              }
            })
          }
        }
        if (!k.data("bindEvent_scrollbar_click")) {
          m.bind("click", function (F) {
            var x = (F.pageY - m.offset().top) * k.data("scrollAmount"),
              y = c(F.target);
            if (k.data("horizontalScroll")) {
              x = (F.pageX - m.offset().left) * k.data("scrollAmount")
            }
            if (y.hasClass("mCSB_draggerContainer") || y.hasClass("mCSB_draggerRail")) {
              k.mCustomScrollbar("scrollTo", x, {
                trigger: "internal",
                scrollEasing: "draggerRailEase"
              })
            }
          });
          k.data({
            bindEvent_scrollbar_click: true
          })
        }
        if (k.data("mouseWheel")) {
          if (!k.data("bindEvent_mousewheel")) {
            h.bind("mousewheel", function (H, J) {
              var G, F = k.data("mouseWheelPixels"),
                x = Math.abs(p.position().top),
                I = j.position().top,
                y = m.height() - j.height();
              if (k.data("normalizeMouseWheelDelta")) {
                if (J < 0) {
                  J = -1
                } else {
                  J = 1
                }
              }
              if (F === "auto") {
                F = 100 + Math.round(k.data("scrollAmount") / 2)
              }
              if (k.data("horizontalScroll")) {
                I = j.position().left;
                y = m.width() - j.width();
                x = Math.abs(p.position().left)
              }
              if ((J > 0 && I !== 0) || (J < 0 && I !== y)) {
                H.preventDefault();
                H.stopImmediatePropagation()
              }
              G = x - (J * F);
              k.mCustomScrollbar("scrollTo", G, {
                trigger: "internal"
              })
            });
            k.data({
              bindEvent_mousewheel: true
            })
          }
        }
        if (k.data("scrollButtons_enable")) {
          if (k.data("scrollButtons_scrollType") === "pixels") {
            if (k.data("horizontalScroll")) {
              v.add(A).unbind("mousedown touchstart MSPointerDown mouseup MSPointerUp mouseout MSPointerOut touchend", i, g);
              k.data({
                bindEvent_buttonsContinuous_x: false
              });
              if (!k.data("bindEvent_buttonsPixels_x")) {
                v.bind("click", function (x) {
                  x.preventDefault();
                  q(Math.abs(p.position().left) + k.data("scrollButtons_scrollAmount"))
                });
                A.bind("click", function (x) {
                  x.preventDefault();
                  q(Math.abs(p.position().left) - k.data("scrollButtons_scrollAmount"))
                });
                k.data({
                  bindEvent_buttonsPixels_x: true
                })
              }
            } else {
              e.add(w).unbind("mousedown touchstart MSPointerDown mouseup MSPointerUp mouseout MSPointerOut touchend", i, g);
              k.data({
                bindEvent_buttonsContinuous_y: false
              });
              if (!k.data("bindEvent_buttonsPixels_y")) {
                e.bind("click", function (x) {
                  x.preventDefault();
                  q(Math.abs(p.position().top) + k.data("scrollButtons_scrollAmount"))
                });
                w.bind("click", function (x) {
                  x.preventDefault();
                  q(Math.abs(p.position().top) - k.data("scrollButtons_scrollAmount"))
                });
                k.data({
                  bindEvent_buttonsPixels_y: true
                })
              }
            }

            function q(x) {
              if (!j.data("preventAction")) {
                j.data("preventAction", true);
                k.mCustomScrollbar("scrollTo", x, {
                  trigger: "internal"
                })
              }
            }
          } else {
            if (k.data("horizontalScroll")) {
              v.add(A).unbind("click");
              k.data({
                bindEvent_buttonsPixels_x: false
              });
              if (!k.data("bindEvent_buttonsContinuous_x")) {
                v.bind("mousedown touchstart MSPointerDown", function (y) {
                  y.preventDefault();
                  var x = z();
                  k.data({
                    mCSB_buttonScrollRight: setInterval(function () {
                      k.mCustomScrollbar("scrollTo", Math.abs(p.position().left) + x, {
                        trigger: "internal",
                        scrollEasing: "easeOutCirc"
                      })
                    }, 17)
                  })
                });
                var i = function (x) {
                  x.preventDefault();
                  clearInterval(k.data("mCSB_buttonScrollRight"))
                };
                v.bind("mouseup touchend MSPointerUp mouseout MSPointerOut", i);
                A.bind("mousedown touchstart MSPointerDown", function (y) {
                  y.preventDefault();
                  var x = z();
                  k.data({
                    mCSB_buttonScrollLeft: setInterval(function () {
                      k.mCustomScrollbar("scrollTo", Math.abs(p.position().left) - x, {
                        trigger: "internal",
                        scrollEasing: "easeOutCirc"
                      })
                    }, 17)
                  })
                });
                var g = function (x) {
                  x.preventDefault();
                  clearInterval(k.data("mCSB_buttonScrollLeft"))
                };
                A.bind("mouseup touchend MSPointerUp mouseout MSPointerOut", g);
                k.data({
                  bindEvent_buttonsContinuous_x: true
                })
              }
            } else {
              e.add(w).unbind("click");
              k.data({
                bindEvent_buttonsPixels_y: false
              });
              if (!k.data("bindEvent_buttonsContinuous_y")) {
                e.bind("mousedown touchstart MSPointerDown", function (y) {
                  y.preventDefault();
                  var x = z();
                  k.data({
                    mCSB_buttonScrollDown: setInterval(function () {
                      k.mCustomScrollbar("scrollTo", Math.abs(p.position().top) + x, {
                        trigger: "internal",
                        scrollEasing: "easeOutCirc"
                      })
                    }, 17)
                  })
                });
                var t = function (x) {
                  x.preventDefault();
                  clearInterval(k.data("mCSB_buttonScrollDown"))
                };
                e.bind("mouseup touchend MSPointerUp mouseout MSPointerOut", t);
                w.bind("mousedown touchstart MSPointerDown", function (y) {
                  y.preventDefault();
                  var x = z();
                  k.data({
                    mCSB_buttonScrollUp: setInterval(function () {
                      k.mCustomScrollbar("scrollTo", Math.abs(p.position().top) - x, {
                        trigger: "internal",
                        scrollEasing: "easeOutCirc"
                      })
                    }, 17)
                  })
                });
                var f = function (x) {
                  x.preventDefault();
                  clearInterval(k.data("mCSB_buttonScrollUp"))
                };
                w.bind("mouseup touchend MSPointerUp mouseout MSPointerOut", f);
                k.data({
                  bindEvent_buttonsContinuous_y: true
                })
              }
            }

            function z() {
              var x = k.data("scrollButtons_scrollSpeed");
              if (k.data("scrollButtons_scrollSpeed") === "auto") {
                x = Math.round((k.data("scrollInertia") + 100) / 40)
              }
              return x
            }
          }
        }
        if (k.data("autoScrollOnFocus")) {
          if (!k.data("bindEvent_focusin")) {
            h.bind("focusin", function () {
              h.scrollTop(0).scrollLeft(0);
              var x = c(document.activeElement);
              if (x.is("input,textarea,select,button,a[tabindex],area,object")) {
                var G = p.position().top,
                  y = x.position().top,
                  F = h.height() - x.outerHeight();
                if (k.data("horizontalScroll")) {
                  G = p.position().left;
                  y = x.position().left;
                  F = h.width() - x.outerWidth()
                }
                if (G + y < 0 || G + y > F) {
                  k.mCustomScrollbar("scrollTo", y, {
                    trigger: "internal"
                  })
                }
              }
            });
            k.data({
              bindEvent_focusin: true
            })
          }
        }
        if (k.data("autoHideScrollbar")) {
          if (!k.data("bindEvent_autoHideScrollbar")) {
            h.bind("mouseenter", function (x) {
              h.addClass("mCS-mouse-over");
              d.showScrollbar.call(h.children(".mCSB_scrollTools"))
            }).bind("mouseleave touchend", function (x) {
              h.removeClass("mCS-mouse-over");
              if (x.type === "mouseleave") {
                d.hideScrollbar.call(h.children(".mCSB_scrollTools"))
              }
            });
            k.data({
              bindEvent_autoHideScrollbar: true
            })
          }
        }
      },
      scrollTo: function (e, f) {
        var i = c(this),
          o = {
            moveDragger: false,
            trigger: "external",
            callbacks: true,
            scrollInertia: i.data("scrollInertia"),
            scrollEasing: i.data("scrollEasing")
          },
          f = c.extend(o, f),
          p, g = i.children(".mCustomScrollBox"),
          k = g.children(".mCSB_container"),
          r = g.children(".mCSB_scrollTools"),
          j = r.children(".mCSB_draggerContainer"),
          h = j.children(".mCSB_dragger"),
          t = draggerSpeed = f.scrollInertia,
          q, s, m, l;
        if (!k.hasClass("mCS_no_scrollbar")) {
          i.data({
            mCS_trigger: f.trigger
          });
          if (i.data("mCS_Init")) {
            f.callbacks = false
          }
          if (e || e === 0) {
            if (typeof (e) === "number") {
              if (f.moveDragger) {
                p = e;
                if (i.data("horizontalScroll")) {
                  e = h.position().left * i.data("scrollAmount")
                } else {
                  e = h.position().top * i.data("scrollAmount")
                }
                draggerSpeed = 0
              } else {
                p = e / i.data("scrollAmount")
              }
            } else {
              if (typeof (e) === "string") {
                var v;
                if (e === "top") {
                  v = 0
                } else {
                  if (e === "bottom" && !i.data("horizontalScroll")) {
                    v = k.outerHeight() - g.height()
                  } else {
                    if (e === "left") {
                      v = 0
                    } else {
                      if (e === "right" && i.data("horizontalScroll")) {
                        v = k.outerWidth() - g.width()
                      } else {
                        if (e === "first") {
                          v = i.find(".mCSB_container").find(":first")
                        } else {
                          if (e === "last") {
                            v = i.find(".mCSB_container").find(":last")
                          } else {
                            v = i.find(e)
                          }
                        }
                      }
                    }
                  }
                }
                if (v.length === 1) {
                  if (i.data("horizontalScroll")) {
                    e = v.position().left
                  } else {
                    e = v.position().top
                  }
                  p = e / i.data("scrollAmount")
                } else {
                  p = e = v
                }
              }
            }
            if (i.data("horizontalScroll")) {
              if (i.data("onTotalScrollBack_Offset")) {
                s = -i.data("onTotalScrollBack_Offset")
              }
              if (i.data("onTotalScroll_Offset")) {
                l = g.width() - k.outerWidth() + i.data("onTotalScroll_Offset")
              }
              if (p < 0) {
                p = e = 0;
                clearInterval(i.data("mCSB_buttonScrollLeft"));
                if (!s) {
                  q = true
                }
              } else {
                if (p >= j.width() - h.width()) {
                  p = j.width() - h.width();
                  e = g.width() - k.outerWidth();
                  clearInterval(i.data("mCSB_buttonScrollRight"));
                  if (!l) {
                    m = true
                  }
                } else {
                  e = -e
                }
              }
              var n = i.data("snapAmount");
              if (n) {
                e = Math.round(e / n) * n - i.data("snapOffset")
              }
              d.mTweenAxis.call(this, h[0], "left", Math.round(p), draggerSpeed, f.scrollEasing);
              d.mTweenAxis.call(this, k[0], "left", Math.round(e), t, f.scrollEasing, {
                onStart: function () {
                  if (f.callbacks && !i.data("mCS_tweenRunning")) {
                    u("onScrollStart")
                  }
                  if (i.data("autoHideScrollbar")) {
                    d.showScrollbar.call(r)
                  }
                },
                onUpdate: function () {
                  if (f.callbacks) {
                    u("whileScrolling")
                  }
                },
                onComplete: function () {
                  if (f.callbacks) {
                    u("onScroll");
                    if (q || (s && k.position().left >= s)) {
                      u("onTotalScrollBack")
                    }
                    if (m || (l && k.position().left <= l)) {
                      u("onTotalScroll")
                    }
                  }
                  h.data("preventAction", false);
                  i.data("mCS_tweenRunning", false);
                  if (i.data("autoHideScrollbar")) {
                    if (!g.hasClass("mCS-mouse-over")) {
                      d.hideScrollbar.call(r)
                    }
                  }
                }
              })
            } else {
              if (i.data("onTotalScrollBack_Offset")) {
                s = -i.data("onTotalScrollBack_Offset")
              }
              if (i.data("onTotalScroll_Offset")) {
                l = g.height() - k.outerHeight() + i.data("onTotalScroll_Offset")
              }
              if (p < 0) {
                p = e = 0;
                clearInterval(i.data("mCSB_buttonScrollUp"));
                if (!s) {
                  q = true
                }
              } else {
                if (p >= j.height() - h.height()) {
                  p = j.height() - h.height();
                  e = g.height() - k.outerHeight();
                  clearInterval(i.data("mCSB_buttonScrollDown"));
                  if (!l) {
                    m = true
                  }
                } else {
                  e = -e
                }
              }
              var n = i.data("snapAmount");
              if (n) {
                e = Math.round(e / n) * n - i.data("snapOffset")
              }
              d.mTweenAxis.call(this, h[0], "top", Math.round(p), draggerSpeed, f.scrollEasing);
              d.mTweenAxis.call(this, k[0], "top", Math.round(e), t, f.scrollEasing, {
                onStart: function () {
                  if (f.callbacks && !i.data("mCS_tweenRunning")) {
                    u("onScrollStart")
                  }
                  if (i.data("autoHideScrollbar")) {
                    d.showScrollbar.call(r)
                  }
                },
                onUpdate: function () {
                  if (f.callbacks) {
                    u("whileScrolling")
                  }
                },
                onComplete: function () {
                  if (f.callbacks) {
                    u("onScroll");
                    if (q || (s && k.position().top >= s)) {
                      u("onTotalScrollBack")
                    }
                    if (m || (l && k.position().top <= l)) {
                      u("onTotalScroll")
                    }
                  }
                  h.data("preventAction", false);
                  i.data("mCS_tweenRunning", false);
                  if (i.data("autoHideScrollbar")) {
                    if (!g.hasClass("mCS-mouse-over")) {
                      d.hideScrollbar.call(r)
                    }
                  }
                }
              })
            }
            if (i.data("mCS_Init")) {
              i.data({
                mCS_Init: false
              })
            }
          }
        }

        function u(w) {
          this.mcs = {
            top: k.position().top,
            left: k.position().left,
            draggerTop: h.position().top,
            draggerLeft: h.position().left,
            topPct: Math.round((100 * Math.abs(k.position().top)) / Math.abs(k.outerHeight() - g.height())),
            leftPct: Math.round((100 * Math.abs(k.position().left)) / Math.abs(k.outerWidth() - g.width()))
          };
          switch (w) {
            case "onScrollStart":
              i.data("mCS_tweenRunning", true).data("onScrollStart_Callback").call(i, this.mcs);
              break;
            case "whileScrolling":
              i.data("whileScrolling_Callback").call(i, this.mcs);
              break;
            case "onScroll":
              i.data("onScroll_Callback").call(i, this.mcs);
              break;
            case "onTotalScrollBack":
              i.data("onTotalScrollBack_Callback").call(i, this.mcs);
              break;
            case "onTotalScroll":
              i.data("onTotalScroll_Callback").call(i, this.mcs);
              break
          }
        }
      },
      stop: function () {
        var g = c(this),
          e = g.children().children(".mCSB_container"),
          f = g.children().children().children().children(".mCSB_dragger");
        d.mTweenAxisStop.call(this, e[0]);
        d.mTweenAxisStop.call(this, f[0])
      },
      disable: function (e) {
        var j = c(this),
          f = j.children(".mCustomScrollBox"),
          h = f.children(".mCSB_container"),
          g = f.children(".mCSB_scrollTools"),
          i = g.children().children(".mCSB_dragger");
        f.unbind("mousewheel focusin mouseenter mouseleave touchend");
        h.unbind("touchstart touchmove");
        if (e) {
          if (j.data("horizontalScroll")) {
            i.add(h).css("left", 0)
          } else {
            i.add(h).css("top", 0)
          }
        }
        g.css("display", "none");
        h.addClass("mCS_no_scrollbar");
        j.data({
          bindEvent_mousewheel: false,
          bindEvent_focusin: false,
          bindEvent_content_touch: false,
          bindEvent_autoHideScrollbar: false
        }).addClass("mCS_disabled")
      },
      destroy: function () {
        var e = c(this);
        e.removeClass("mCustomScrollbar _mCS_" + e.data("mCustomScrollbarIndex")).addClass("mCS_destroyed").children().children(".mCSB_container").unwrap().children().unwrap().siblings(".mCSB_scrollTools").remove();
        c(document).unbind("mousemove." + e.data("mCustomScrollbarIndex") + " mouseup." + e.data("mCustomScrollbarIndex") + " MSPointerMove." + e.data("mCustomScrollbarIndex") + " MSPointerUp." + e.data("mCustomScrollbarIndex"));
        c(window).unbind("resize." + e.data("mCustomScrollbarIndex"))
      }
    },
    d = {
      showScrollbar: function () {
        this.stop().animate({
          opacity: 1
        }, "fast")
      },
      hideScrollbar: function () {
        this.stop().animate({
          opacity: 0
        }, "fast")
      },
      mTweenAxis: function (g, i, h, f, o, y) {
        var y = y || {},
          v = y.onStart || function () {},
          p = y.onUpdate || function () {},
          w = y.onComplete || function () {};
        var n = t(),
          l, j = 0,
          r = g.offsetTop,
          s = g.style;
        if (i === "left") {
          r = g.offsetLeft
        }
        var m = h - r;
        q();
        e();

        function t() {
          if (window.performance && window.performance.now) {
            return window.performance.now()
          } else {
            if (window.performance && window.performance.webkitNow) {
              return window.performance.webkitNow()
            } else {
              if (Date.now) {
                return Date.now()
              } else {
                return new Date().getTime()
              }
            }
          }
        }

        function x() {
          if (!j) {
            v.call()
          }
          j = t() - n;
          u();
          if (j >= g._time) {
            g._time = (j > g._time) ? j + l - (j - g._time) : j + l - 1;
            if (g._time < j + 1) {
              g._time = j + 1
            }
          }
          if (g._time < f) {
            g._id = _request(x)
          } else {
            w.call()
          }
        }

        function u() {
          if (f > 0) {
            g.currVal = k(g._time, r, m, f, o);
            s[i] = Math.round(g.currVal) + "px"
          } else {
            s[i] = h + "px"
          }
          p.call()
        }

        function e() {
          l = 1000 / 60;
          g._time = j + l;
          _request = (!window.requestAnimationFrame) ? function (z) {
            u();
            return setTimeout(z, 0.01)
          } : window.requestAnimationFrame;
          g._id = _request(x)
        }

        function q() {
          if (g._id == null) {
            return
          }
          if (!window.requestAnimationFrame) {
            clearTimeout(g._id)
          } else {
            window.cancelAnimationFrame(g._id)
          }
          g._id = null
        }

        function k(B, A, F, E, C) {
          switch (C) {
            case "linear":
              return F * B / E + A;
              break;
            case "easeOutQuad":
              B /= E;
              return -F * B * (B - 2) + A;
              break;
            case "easeInOutQuad":
              B /= E / 2;
              if (B < 1) {
                return F / 2 * B * B + A
              }
              B--;
              return -F / 2 * (B * (B - 2) - 1) + A;
              break;
            case "easeOutCubic":
              B /= E;
              B--;
              return F * (B * B * B + 1) + A;
              break;
            case "easeOutQuart":
              B /= E;
              B--;
              return -F * (B * B * B * B - 1) + A;
              break;
            case "easeOutQuint":
              B /= E;
              B--;
              return F * (B * B * B * B * B + 1) + A;
              break;
            case "easeOutCirc":
              B /= E;
              B--;
              return F * Math.sqrt(1 - B * B) + A;
              break;
            case "easeOutSine":
              return F * Math.sin(B / E * (Math.PI / 2)) + A;
              break;
            case "easeOutExpo":
              return F * (-Math.pow(2, -10 * B / E) + 1) + A;
              break;
            case "mcsEaseOut":
              var D = (B /= E) * B,
                z = D * B;
              return A + F * (0.499999999999997 * z * D + -2.5 * D * D + 5.5 * z + -6.5 * D + 4 * B);
              break;
            case "draggerRailEase":
              B /= E / 2;
              if (B < 1) {
                return F / 2 * B * B * B + A
              }
              B -= 2;
              return F / 2 * (B * B * B + 2) + A;
              break
          }
        }
      },
      mTweenAxisStop: function (e) {
        if (e._id == null) {
          return
        }
        if (!window.requestAnimationFrame) {
          clearTimeout(e._id)
        } else {
          window.cancelAnimationFrame(e._id)
        }
        e._id = null
      },
      rafPolyfill: function () {
        var f = ["ms", "moz", "webkit", "o"],
          e = f.length;
        while (--e > -1 && !window.requestAnimationFrame) {
          window.requestAnimationFrame = window[f[e] + "RequestAnimationFrame"];
          window.cancelAnimationFrame = window[f[e] + "CancelAnimationFrame"] || window[f[e] + "CancelRequestAnimationFrame"]
        }
      }
    };
  d.rafPolyfill.call();
  c.support.touch = !!("ontouchstart" in window);
  c.support.msPointer = window.navigator.msPointerEnabled;
  var a = ("https:" == document.location.protocol) ? "https:" : "http:";
  c.event.special.mousewheel || document.write('<script src="' + a + '//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.0.6/jquery.mousewheel.min.js"><\/script>');
  c.fn.mCustomScrollbar = function (e) {
    if (b[e]) {
      return b[e].apply(this, Array.prototype.slice.call(arguments, 1))
    } else {
      if (typeof e === "object" || !e) {
        return b.init.apply(this, arguments)
      } else {
        c.error("Method " + e + " does not exist")
      }
    }
  }
})(jQuery);